/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tablemodel;

import Entities.Cliente;
import Entities.Empleado;
import Entities.Especial;
import Entities.Externo;
import Entities.Interno;
import Entities.ItemProducto;
import Entities.MenuEjecutivo;
import Entities.Mesa;
import Entities.Pedido;
import Entities.Producto;
import Entities.Reserva;
import Entities.Vehiculo;
import java.util.Properties;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ApplicationScoped;

/**
 *
 * Clase par establecer lenguaje generico dentro del sitio web.
 */
@ManagedBean
@ApplicationScoped
public class LenguajeBean {

    private Properties p;
    private Properties pl;

    /**
     * Creates a new instance of LenguajeBean
     */
    public LenguajeBean() {
        this.p = new Properties();
        this.pl = new Properties();
    }

    public String devolverString(String nombreClaseEntidad) {
        return p.getProperty(nombreClaseEntidad.toLowerCase(), "");
    }

    public String devolverStringPlural(String nombreClaseEntidad) {
        return pl.getProperty(nombreClaseEntidad.toLowerCase(), "");
    }

    public String devolverString_StartMayus(String nombreClaseEntidad) {
        return primeraMayuscula(p.getProperty(nombreClaseEntidad.toLowerCase(), ""));
    }

    public String devolverStringPlural_StartMayus(String nombreClaseEntidad) {
        return primeraMayuscula(pl.getProperty(nombreClaseEntidad.toLowerCase(), ""));
    }

    private String primeraMayuscula(String palabra) {
        palabra = ("".equals(palabra)) ? palabra : palabra.substring(0, 1).toUpperCase() + palabra.substring(1);
        return palabra;
    }

    public String textoValidacionRequerido(String nombreCampo) {
        return nombreCampo != null ? nombreCampo + ": Este campo es requerido" : "Campo requerido";
    }

    @PostConstruct
    private void cargarProperties() {
        
        p.setProperty("itemMenu", "item de menú");
        pl.setProperty("itemMenu".toLowerCase(), "items de menú");
        
        p.setProperty(Mesa.class.getSimpleName().toLowerCase(), "mesa");
        pl.setProperty(Mesa.class.getSimpleName().toLowerCase(), "mesas");

        p.setProperty(Pedido.class.getSimpleName().toLowerCase(), "pedido");
        pl.setProperty(Pedido.class.getSimpleName().toLowerCase(), "pedidos");

        p.setProperty(Interno.class.getSimpleName().toLowerCase(), "pedido interno");
        pl.setProperty(Interno.class.getSimpleName().toLowerCase(), "pedidos internos");

        p.setProperty(Externo.class.getSimpleName().toLowerCase(), "pedido externo");
        pl.setProperty(Externo.class.getSimpleName().toLowerCase(), "pedidos externos");

        p.setProperty(Vehiculo.class.getSimpleName().toLowerCase(), "vehículo");
        pl.setProperty(Vehiculo.class.getSimpleName().toLowerCase(), "vehículos");

        p.setProperty(Empleado.class.getSimpleName().toLowerCase(), "empleado");
        pl.setProperty(Empleado.class.getSimpleName().toLowerCase(), "empleados");
        
        p.setProperty(Cliente.class.getSimpleName().toLowerCase(), "cliente");
        pl.setProperty(Cliente.class.getSimpleName().toLowerCase(), "clientes");
        
        p.setProperty(Producto.class.getSimpleName().toLowerCase(), "producto");
        pl.setProperty(Producto.class.getSimpleName().toLowerCase(), "productos");
        
        p.setProperty(Especial.class.getSimpleName().toLowerCase(), "especial");
        pl.setProperty(Especial.class.getSimpleName().toLowerCase(), "especiales");
        
        p.setProperty(ItemProducto.class.getSimpleName().toLowerCase(), "producto");
        pl.setProperty(ItemProducto.class.getSimpleName().toLowerCase(), "productos");
        
        p.setProperty(MenuEjecutivo.class.getSimpleName().toLowerCase(), "menú ejecutivo");
        pl.setProperty(MenuEjecutivo.class.getSimpleName().toLowerCase(), "menús ejecutivos");
        
        p.setProperty(Reserva.class.getSimpleName().toLowerCase(), "reserva");
        pl.setProperty(Reserva.class.getSimpleName().toLowerCase(), "reservas");
        
      
    }
}
